package bean;
import java.util.List;


import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;



import model.Contato;

//import org.hibernate.Session;
//import org.hibernate.Transaction;

//import util.HibernateUtil;
import dao.ContatoDAO;
import dao.ContatoDaoImpl;

@ManagedBean(name="contatoBean")
@SessionScoped
public class ContatoBean{
	
	
	private Contato contato;
	private DataModel listaContatos;
	
	public Contato getContato() {
		return contato;
	}
	public void setContato(Contato contato) {
		this.contato = contato;
	}
	public DataModel getListaContatos() {
		List<Contato> lista = new ContatoDaoImpl().ListarTodos();
		listaContatos = new ListDataModel(lista);
		return listaContatos;
	}
	public void setListaContatos(DataModel listaContatos) {
		this.listaContatos = listaContatos;
	}
	
	
	public String prepararAdicionarContato(){
		contato = new Contato();
		return "gerenciarContato";
		}
	
	public String prepararAlterarContato(){
		contato = (Contato)(listaContatos.getRowData());
		return "gerenciarContato";
		}
	
	public String excluirContato(){
		Contato contatoTemp = (Contato)(listaContatos.getRowData());
		ContatoDAO dao = new ContatoDaoImpl();
		dao.remover(contatoTemp);
		return "index";
		}
	
	public String adicionarContato(){
		ContatoDAO dao = new ContatoDaoImpl();
		dao.gravar(contato);
		return "index";
		}
	
	public String alterarContato(){
		ContatoDAO dao = new ContatoDaoImpl();
		dao.alterar(contato);
		return "index";
		}
	

}
